package com.wyk.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.wyk.project.dto.req.ShortLinkGroupStatsAccessRecordReqDTO;
import com.wyk.project.dto.req.ShortLinkGroupStatsReqDTO;
import com.wyk.project.dto.req.ShortLinkStatsAccessRecordReqDTO;
import com.wyk.project.dto.req.ShortLinkStatsReqDTO;
import com.wyk.project.dto.resp.ShortLinkStatsAccessRecordRespDTO;
import com.wyk.project.dto.resp.ShortLinkStatsRespDTO;
import jakarta.servlet.http.HttpServletResponse;

/**
 *  短链接监控
 */
public interface ShortLinkStatsService {

    /**
     *访问单个短链接指定时间内监控
     * @param requestParam
     * @return
     */
    ShortLinkStatsRespDTO oneShortLinkStats(ShortLinkStatsReqDTO requestParam);

    /**
     *  访问单个短链接指定时间内 的历史记录
     * @param requestParam
     * @return
     */
    IPage<ShortLinkStatsAccessRecordRespDTO> oneShortLinkStatsAccessRecord(ShortLinkStatsAccessRecordReqDTO requestParam);

    /**
     * 根据分组获取指定日期内基础监控数据
     */
    ShortLinkStatsRespDTO groupShortLinkStats(ShortLinkGroupStatsReqDTO requestParam);

    /**
     * 分组内指定时间内 的历史记录
     * @param requestParam
     * @return
     */
    IPage<ShortLinkStatsAccessRecordRespDTO> groupShortLinkStatsAccessRecord(ShortLinkGroupStatsAccessRecordReqDTO requestParam);

    /**
     * 导出分组内单个短链接一周内内访问的历史记录
     * @param id 短连接 ID
     * @return
     */
    String exportShortLinkStatsAccessRecord(Integer id);
}